/*
继承的基本语法:
class 子类: 继承方式 父类
*/
#include <iostream>
using namespace std;
class f
{
//公共属性
public:
    int x=1;
    void fun1_g(){
        cout<<this->x<<endl;
    }
    f(int x=0,int y=0,int z=0){
        this->x=x;
        this->y=y;
        this->z=z;
    }
//私有属性不可被继承
private:
    int y=2;
    void fun2_s(){
        cout<<this->y<<endl;
    }
//保护属性可以被继承--但是只能在类内被访问
protected:
    int z=3;
    void fun3_b(){
        cout<<this->z<<endl;
    }
};
//公共继承方式
class z1 : public f
{};
//私有继承方式
class z2 : private f
{};
//保护继承方式
class z3 : protected f
{
public:
    void fun1_z3(){
        fun3_b();
    }
};
int main()
{
    z1 z1_1;
    z1_1.fun1_g();
    z2 z2_1;
    //z2_1.fun1_g();//私有继承方式所有保护属性都成私有属性类外不能被访问且父类的私有属性依旧不可访问
    z3 z3_1;
    z3_1.fun1_z3();//保护继承方式所有属性成保护权限
    return 0;
}